Try โ€‚โ€‰HackMD

From CS111 to CS200

Deadline for spring 2025: August 17th, 2025 11:00pm

Note: This page is about taking CSCI 200 after CSCI 111. It does not apply to taking DATA 200. You can take DATA 200 directly after CSCI 111, without doing extra work.

This guide tries to help you decide whether going directly to CSCI 200 is right for you. It also contains the bridge problems that you will need to do to get an override approval for CS 200 from whichever professor is teaching it in the semester that you want to take it.

Logistics Summary: If you want to take CS200, you need to:

  • Join the 111 -> 200 Gradescope using the code linked in Ed (Every semester starting with Spring 2023 has access to such an Ed post. Email Milda to get the code if you were enrolled in 111 prior to 2023. It's the same Gradescope every semester, so that we can keep track of all of the students who have done the bridgework.)
  • Complete all of the bridge assignments listed further down on this page.
  • Submit your work on each problem by the deadline at the top of the page. We appreciate earlier submissions (and submissions as you finish each assignment, rather than all at once)
  • After we check off your work, request an override in CAB. We will not approve any overrides until after you've submitted everything and we've had a chance to review it. The enrollment capacities for CS200 are made with the understanding that CS111 students will enroll in August/January after completing the bridgework, so there is no registration disadvantage for waiting until then.

Please do not email Milda/Nick/Kathi about override requests; Milda will e-mail you after she looks through all of your bridge work with next steps in August/January.

In assessing your work, we will look at whether it solves the problem, is well structured (in style, use of helper functions, etc), and has been appropriately tested: the same criteria that we applied to your work in 111. There's no numeric grade cutoff. Rather, you need to convince both yourself and us that you are ready to take on the work of CS200. You can't really "fail" the bridgework (unless the work you submit is not your own, in which case, you will be inelligible to be checked off for the work), because we allow you to resubmit the work after receiving feedback. Keep in mind that the point of the assignments is to assess your own preparedness for CS200. Phoning it in is going to be detrimental to your own experience.

We can't believe we have to say this, but given past experience, P L E A S E do not waste our time and your time by plagiarising the bridgework โ€“ you are able to resubmit after getting feedback, so being "under pressure" to submit the work should be no excuse. If you find yourself struggling on the bridgework to the point of needing to plagiarise, step back and ask yourself if you are truly setting yourself up for success in CS200, which will have more challenging assignments than the bridgework.

Can we use office hours? What about during break?

As we approach the end of the semester, the office hours schedule will have indicators for hours in which the TAs are comfortable handling CS200 questions (not all of the TAs went beyond CS111). TA hours will end after the mini-project comes in at the start of reading period.

Milda will monitor Ed sporadically over break. You will also have access to Milda's recorded office hours videos.

What is CS200 / What Does it Cover?

CS200 has two main goals: (1) to introduce you to object-oriented programming (which structures computations a bit differently than in CS111 and CS17), and (2) to deepen your knowledge of data structures and the key algorithms that work on them. In CS200 we actually implement lists and hashmaps/dictionaries (which we'll cover in late April/November) from scratch, and you'll work a lot more with trees. You'll build your own implementations of lists, trees, and hashmaps. You'll learn some new data structures (including graphs), and do projects such as writing the core of a search engine.

Both CS17 and CS111 use a similar style of programming called functional programming (what 111 did in Pyret). CS200 assumes that you've seen that style of programming and builds on the computer science concepts you've already seen, but is designed to gear you up with working with a new style of programming and a new language (Java).

How does CS200 compare in style to 111?

The workload in CS200 is higher than in CS111: the homework assignments are longer (more questions) and more open-ended (in terms of what you have to figure out for yourself). The projects are similarly more challenging and open-ended. It's not unusual for students to spend 12-15 hours a week on CS200 outside of class.

The lecture style will be similar to what you've experienced in 111.

Are students from 111 going to be "behind" or at a "disadvantage" when going into CS200?

We have had seven semesters of experience with students making the jump from 111 directly to CS18 (and now 200). The transition went smoothly for some and less so for others (with some dropping 18/200 entirely). Of those who found the transition hard, some note the additional workload. Others noted difficulty figuring out how to get started on the more open-ended assignments. This is also true for students taking 200 after CS15, and 200 after CS17. You should definitely have systematic ways of working on programming assignments (planning tasks, working with examples, developing programs in stages) in order to set yourself up for success.

Note that this does NOT mean that you have to be able to finish all of the 111 assignments quickly. The key is whether you are able to make solid progress on your own before needing help. If you mostly get the problems but need a bit of help on the finer points, CS200 should still be feasible for you.

When must we decide whether to register for CS200?

Only during shopping period. You are not obligated to take CS200, even if you submit the bridge work. And you can defer and take CS200 anytime in the future if we approve your bridge work this semester. The plan is to continue offering CS 200 every semester, so you can definitely hold off if your schedule demands it.

I haven't taken 111 โ€“ can I still use the bridge to start in CS200?

No. The bridge option is only open to students who have passed CS111 at Brown.

I took 111 in a previous semester. Can I complete the bridgework now?

Yes. If you took the course in Spring 2023 or later, the Gradescope access code that is posted in our Ed will work. If you took the course earlier than that, email Milda for the access code.

Bridge Topics and Assignments

These assignments serve two purposes: they teach you topics that CS200 assumes, and (for the later problems) help you self-assess whether you are ready for the conceptual complexity of the work in CS200. Your work on all of these assignments should follow the style of programming we did in Pyret, in which we used a lot of recursion (and did not update the values of variables โ€“ a topic coming in Python).

There will be five total assignments. They are being revised this year, and will come out gradually; the last one just before reading period.

Assignment 1: Sorting Lists

Three algorithms: insertion sort, merge sort, and quicksort. You'll need to be able to implement these three algorithms recursively, and be able to explain how efficiently each yields a sorted list.

Assignment Handout

Assignment 2: Binary Search Trees

Binary search trees are a particular usage of tree to capture sets (collections) of data. You'll need to understand how the core algorithms work to add, remove, and find items in such a tree, and how their efficiency compares to doing related operations on lists. You'll also revisit sorting.

Assignment Handout

Assignment 3: Files and directories

Part of what one learns in CS17 is just how to tackle problems that are more complex than those we have done in CS111. In this assignment, you'll represent a collection of files and folders in datatypes and write programs to process a collection of nested folders and files.

Assignment Handout